package com.baizhi.pojo;

import lombok.ToString;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

@Component
@ToString
public class Person {
    @Value("${id}")
    private Integer id;
    @Value("${name}")
    private String name;
    @Value("${age}")
    private Integer age;
    @Value("${address}")
    private String address;

    @Autowired
    private Dog dog;

    /**
     * @Autowired 默认自动装配模式是byType, 根据类型查询，如果找到唯一的对象则自动装配
     * 如果没有找到则抛出 UnsatisfiedDependencyException 异常
     * ，如果找到多个，则再根据byName进行查找，如果没有匹配的 id ，则抛出异常 UnsatisfiedDependencyException
     *   可以结合@Qualifier(value="Id值") 来匹配ID
     *   是属于SPring的
     *
     * @Resource 默认自动装配模式是byName, 根据Id查询，如果找到唯一的对象则进行自动装配，如果找不到则再根据ByType进行查询
     * @Resource是属于Java的
     *
     */

//    @Autowired
//    @Qualifier("lanCat")
//    private Cat cat;

    @Resource(name="lanCat")
    private Cat cat;

    //配置list集合
    @Value("#{@wife}")
    private List<String> wife;

    //配置Set集合
    @Value("#{@love}")
    private Set<String> love;

    //配置Map集合
    @Value("#{@jobs}")
    private Map<String,String> jobs;

    //配置properties
    @Value("#{@adds}")
    private Properties adds;

}
